IIS 7.0
Web 服务器 (IIS) 角色
IIS(Internet Information Services)7 指 Windows Server 2008Windows Server 2008 R2Windows VistaWindows 7 的某些版本中包含的 IIS 版本。IIS 7.0 在 Windows Server 2008 中是 Web 服务器 (IIS) 角色,而在 Windows Vista 中是 Web 服务器。
功能用途
IIS 7.5 在 Windows Server 2008 R2 中是 Web 服务器 (IIS) 角色,而在 Windows 7 中是 Web 服务器。Web 服务器在 IIS 7 中经过重新设计,您将能够通过添加或删除模块来自定义服务器,以满足您的特定需求。模块是服务器用于处理请求的独特功能。例如,IIS 使用身份验证模块对客户端凭据进行身份验证,并使用缓存模块来管理缓存活动。IIS是一个支持HTTP和FTP发布服务的Web服务器。IIS 7.0 通过支持灵活的可扩展模型来实现强大的定制功能,通过安装和运行特征加强安全。
IIS 7.0还可以让那些在其中负责web应用程序或服务的人来代理权限,通过选择性地安装和运行特性增强安全性。IIS 7.0的可扩展性包括一个全新的核心服务器API集合,这使得特性模块可以用本机码(C/C++)或托管代码开发。IIS 7.0还启用了配置、脚本、事件日志和管理工具特性集的可扩展性,向软件开发者提供了一个完备的服务器平台,开发者可以在该平台上建立Web服务器扩展模块。IIS 7.0 包括了一整套的管理工具,包括新的管理员和命令行工具,新的托管代码和脚本API和Windows PowerShell支持简化开发人员和管理员的日常工作。管理工具是完全可扩展的,使得开发者能够使用.NET框架建立新的管理模块,也很容易将新的管理UI模块插入进来,如同随IIS 7.0发布的那些模块一般,新模块的工作过程是透明的。
IIS 7.0核心Web服务器与IIS 6.0比较,有一些根本性的变化。例如,本机代码和托管代码可以通过单一的请求流程进行处理。集成化的流程,使得不同的应用框架可以在单一的Web服务器请求流水线中运行,为所有应用程序提供了内建的ASP. NET可扩展性。IIS 7.0还支持使用.NET框架开发核心Web服务器扩展。IIS 7.0集成了现存的用于ASP. NET的IHttpModule API,使得对于所有请求,你的托管代码模块都能够访问请求流程中的所有事件。IIS 7.0包括一个新的Runtime State and Control API,提供了关于应用程序池、工作进程、网站、应用程序域、和运行中的请求的实时状态信息。该信息通过本机COM组件API暴露出来。该API是通过新的IIS WMI提供者appcmd.exe和IIS Manager包装和暴露出来的。
Windows Server 2008提供了在生产环境中支持Web内容承载所需的全部 IIS 功能。Windows Vista 也提供了 IIS 功能,但可用功能取决于Windows Vista的版本。Windows Vista中的IIS对于想要构建和测试 Web应用程序的用户而言十分理想。IIS 7.0 包括Microsoft.Web.Administration接口编程用来管理服务器。IIS 7.0 还包括一个新的Windows Management Instrumentation(WMI)提供者用来提供访问配置和服务器的状态信息给VBScriptJScript。通过使用WMI,管理员可以轻松地自动化基本的配置任务以及管理网站和应用程序。
图形界面的新IIS管理器在防火墙里不开放任何端口的情况下就可以通过HTTP的远程管理,该管理工具是完全可扩展的。
图形界面的新IIS管理器支持HTTP远程管理协议,在无需DCOM的情况下允许无缝地进行本地,远程,甚至跨互联网的连接或在防火墙里开放其它管理端口。
操作方法
Vista开启IIS 7.0
在Vista中,我们可以看得到新版本的IIS 7.0看上去比6.0有了很大的改进。你可以自由开启IIS 7.0,并在个人电脑上架设自己的网站。
下面是开启方法:
2、输入下列命令:
start /w pkgmgr.exe /iu:IIS-WebServerRole;IIS-WebServerFeature;IIS-FTPServerFeature
然后,就会自动安装IIS 7.0。而且,IIS 7.0已经完全组件化,类似于Apache
Win7开启IIS 7.0
默认情况下,windows7安装时是不会自动安装iis,只能手动安装,需要有安装盘。
安装方法:
开始-控制面板-程序-打开或关闭windows功能-internet信息服务-Web管理工具
安装方法
winXP 安装 IIS 过程
1、控制面板中“程序”的位置,“程序”中“打开或关闭Windows功能”的位置。
2、IIS安装完成之后可以在开始菜单的所有程序中看到“管理工具”,其中有一个“Internet信息服务管理器”,如果没有可以按以下步骤添加:《开始》右击《属性》“开始”菜单选项卡《自定义》把“系统管理工具”设置为“在所有程序菜单显示”或者“在所有程序菜单和开始菜单上显示”。
3、打开Internet信息服务管理器就可以看到IIS的主页了。ok,完成。
技术参数
IIS 7.0 HTTP 状态代码
当您试图通过使用 HTTP 访问一台正在运行 Internet 信息服务 (IIS) 7.0 的服务器上的内容时,IIS 7.0 返回一个表示该响应的状态的数字代码。HTTP 状态代码记录在 IIS 日志中。此外,HTTP 状态代码可能会显示在客户端浏览器中。
HTTP 状态代码可能表示请求是否成功或不成功。HTTP 状态代码也可能显示请求成功的确切原因。
1xx - 信息
这些 HTTP 状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。
IIS 7.0 使用以下信息 HTTP 状态代码:
100 - 继续。
101 - 切换协议。
2xx - 成功
200 - 确定。客户端请求已成功。
201 - 已创建。 202 - 已接受。
203 - 非授权信息。
204 - 无内容。
205 - 重置内容。
206 - 部分内容。
3xx - 重定向
301 - 已被永远移走。
302 - 对象已移动。
304 - 未修改。
307 - 临时重定向。
4xx - 客户端错误
IIS 7.0 定义以下 HTTP 状态代码,表明 400 错误的具体原因:
400.1 - 无效的目的标头。
400.2 - 无效的深度标头。
400.3 - 无效的如果标头。
400.4 - 无效的覆盖标头。
400.5 - 无效的转换标头。
400.6 - 无效的请求正文。
400.7 - 无效的内容长度。
400.8 - 无效的超时值。
400.9 - 无效的锁定令牌。
401 - 访问被拒绝。
IIS 7.0 定义几个 HTTP 状态代码,表明 401 错误的具体原因:以下特定的 HTTP 状态代码显示在客户端浏览器中,但是不会显示在 IIS 日志中:
401.1 - 登录失败。
401.2 - 服务器配置导致登录失败。
401.3 - 由于 ACL 对资源的限制而未获得授权。
401.4 - 筛选器授权失败。
401.5 - ISAPI/CGI 应用程序授权失败。
403 - 禁止访问:
IIS 7.0 定义以下 HTTP 状态代码,表明 403 错误的具体原因:
403.1 - 执行访问被禁止。
403.2 - 读访问被禁止。
403.3 - 写访问被禁止。
403.4 - 要求SSL。
403.5 - 要求 SSL 128。
403.6 - IP 地址被拒绝。
403.7 - 要求客户端证书。
403.8 - 站点访问被拒绝。
403.9 - 禁止:许多客户端尝试连接到 Web 服务器:
403.10 - 禁止访问:配置 Web 服务器为拒绝执行访问。
403.11 - 禁止访问:密码已更改。
403.12 - 拒绝访问映射表。
403.13 - 客户端证书被吊销。
403.14 - 拒绝目录列表。
403.15 - 禁止访问: Client access licenses have exceeded limits on the Web server.
403.16 - 客户端证书不受信任或无效。
403.17 - 客户端证书已过期或尚未生效。
403.18 - 在当前的应用程序池中不能执行所请求的 URL。
403.19 - 在此应用程序池中不能执行客户端的 CGI 应用程序。
403.20 - 禁止访问:护照登录失败。
403.21 - 禁止访问:拒绝源访问。
403.22 - 禁止访问:拒绝无限深度。
404 - 未找到。
IIS 7.0 定义以下HTTP 状态代码,表明 404 错误的具体原因:
404.0 - 未找到。
404.1 - 站点未找到。
404.2 - ISAPI 或 CGI 限制。
404.3 - MIME 类型限制。
404.4 - 未配置处理程序。
404.5 - 被请求筛选器配置拒绝。
404.6 - 动词被拒绝。
404.7 - 文件扩展名被拒绝。
404.8 - 隐藏的命名空间
404.9 - 文件属性被隐藏。
404.10 - 请求标头太长。
404.11 - 请求包含双转义序列
404.12 - 请求包含高位字符。
404.13 - 内容长度太大。
404.14 - 请求 URL 太长。
404.15 - 查询字符串太长。
404.16 - 发送到静态文件处理程序DAV 请求。
404.17 - 动态内容通过通配符 MIME 映射映射到静态文件处理程序。
405 - 无效的动词。
406 - 客户端浏览器不接受所请求页面的 MIME 类型。
408 - 请求超时。
412 - 前提条件失败。
5xx - 服务器错误
IIS 7.0 定义以下 HTTP 状态代码,表明 500 错误的具体原因:
500.0 - 发生模块或 ISAPI 错误。
500.11 - 正在 Web 服务器上关闭应用程序。
500.12 - 应用程序正忙于在 Web 服务器上重新启动。
500.13 - Web 服务器太忙。
500.15 - 不允许直接请求 Global.asax。
500.19 - 配置数据无效。
500.21 - 模块无法识别。
500.22 - 无法在托管管道模式下应用 ASP.NET httpModules 配置。
500.23 - 无法在托管管道模式下应用 ASP.NET httpHandlers 配置。
500.24 - 无法在托管管道模式下应用 ASP.NET impersonation 配置。
500.50 - RQ_BEGIN_REQUEST 通知处理期间,发生重写错误。发生配置或入站规则执行错误。
运行模式
IIS 7.0的集成模式和经典模式
IIS7.0中的Web应用程序有两种配置模式:经典模式和集成模式。经典模式是为了与之前的版本兼容,使用ISAPI扩展来调用ASP.NET运行库,原先运行于IIS6.0下的Web应用程序迁移到IIS7.0中只要将应用程序配置成经典模式,代码基本不用修改就可以正常运行。集成模式是一种统一的请求处理管道,它将ASP.NET请求管道与IIS核心管道组合在一起,这种模式能够提供更好的性能,能够实现配置和管理的模块化,而且增加了使用托管代码模块扩展IIS时的灵活性。如果老的Web应用程序运行于IIS7.0的集成模式下,可能需要对应用程序的web.config文件进行修改,尤其是使用了实现IHttpHandler接口的自定义模块的情况。IIS7.0在同一个服务器上能够同时支持两种模式的应用程序。
IIS6.0中ASP.NET MMC管理单元用于配置ASP.NET,7.0中ASP.NET应用程序的管理域IIS管理更加紧密的集成在一起,不存在单独的管理单元,所有的IIS和ASP.NET配置都是使用IIS管理器完成的。IIS7.0配置信息基于.NET Framework配置系统,所以IIS7.0中运行的应用程序的web.config文件同时包含web服务器和ASP.NET配置设置,例如可以再web.config文件中设置扩展名和文件的映射(IIS6.0中必须在IIS中进行配置)。
web.config文件的变化
system.webServer节指定了应用于web应用程序的IIS7.0设置,其父节点是configuration,该节点中可以设置的内容包括:
当请求未包含指定资源时,Web服务器返回给客户端的默认文档(defaultDocument);
响应的压缩设置(httpCompression)
自定义头部(httpProtocol节的customHeaders)
模块(modules)
处理程序(handlers)
其中的一些设置仅适用于集成模式,而不适用于经典模式,如经典模式下运行的应用程序则忽略web.config的system.WebServer节中指定的所有托管代码模块和处理程序,这种模式下web应用程序应该在syste.web节的httpModules和httpHandlers中定义模块和处理程序。
将 Web 应用程序迁移到集成模式
不包含自定义模块或处理程序的 Web 应用程序通常无需更改即可在 IIS 7.0 集成模式下正常工作。对于依赖于自定义模块或处理程序的 Web 应用程序,需要执行以下步骤来使其能够在集成模式下运行:
使用本主题稍后的将Web Config文件迁移到集成模式部分中描述的方法之一,在 Web.config 文件的 system.webServer 节中注册自定义模块和处理程序。
仅在自定义模块的 Init 方法中定义 HttpApplication 请求管道事件(如 BeginRequest 和 EndRequest)的事件处理程序。
请确保您已解决 Upgrading ASP.NET Applications to IIS 7.0: Differences between IIS 7.0 Integrated Mode and Classic mode(将 ASP.NET 应用程序升级到 IIS 7.0:IIS 7.0 集成模式和经典模式之间的区别)的“Known Differences Between Integrated Mode and Classic Mode”(集成模式和经典模式之间的已知区别)部分中讨论的问题。
实现 IHttpModule 接口的模块被称为托管代码模块,因为它们是使用 .NET Framework 生成的。可以在服务器级别或应用程序级别注册托管代码模块。本机代码模块是仅在服务器级别注册的 DLL(非托管代码)。在集成模式下,将以托管模块的形式实现核心 ASP.NET 功能,例如会话状态和 Forms 身份验证
在将应用程序从经典模式迁移到集成模式时,可以保留经典模式下的自定义模块和处理程序注册,也可以将这些注册移除。如果不移除经典模式下使用的 httpModules 和 httpHandlers 注册,则必须将 validation 元素的 validateIntegratedModeConfiguration 属性设置为 false 以避免错误。validation 元素是 system.webServer 元素的子元素。有关更多信息,请参见 ASP.NET Integration with IIS 7.0(将 ASP.NET 与 IIS 7.0 集成)中的“Disabling the migration message”(禁用迁移消息)部分。
迁移 Web.config 文件以便在集成模式下使用
如果模块或处理程序是在应用程序级别定义的,则不会自动调用该模块或处理程序。这涉及符合以下条件的模块或处理程序:在 Bin 文件夹下的程序集中定义;在App_Code文件夹下作为源代码定义;没有在 Web.config 文件的 system.webServer 节中注册和定义。为了使模块或处理程序能够参与集成模式请求管道,必须使用下列方法之一注册该模块或处理程序:
直接编辑 Web.config 文件,并且将 modules 或 handlers 元素添加到 system.webServer 元素中。请注意,与经典模式相比,元素名称是不同的:modules 和 handlers 分别对应于经典模式下的 httpModules 和 httpHandlers。
使用 IIS 管理器配置模块或处理程序。有关更多信息,请参见 Configuring Handler Mappings in IIS 7.0(在 IIS 7.0 中配置处理程序映射)和 Configuring Modules in IIS 7.0(在 IIS 7.0 中配置模块)。
使用 IIS 7.0 命令行工具 (Appcmd.exe)。有关更多信息,请参见 Configure Settings for a Site, Application, Virtual Directory or URL by Using Appcmd.exe(使用 Appcmd.exe 配置站点、应用程序、虚拟目录或 URL 的设置)。
使用集成模式的类和属性
在 IIS 7.0 集成模式以及 .NET Framework 3.0 版或更高版本中使用应用程序时,可以使用下面这些在经典模式下不可用的类和成员:
HttpResponse 对象的 SubStatusCode 属性,使用它可以设置在配置了失败请求跟踪的情况下有用的代码。有关更多信息,请参见 Troubleshooting Failed Requests Using Failed Request Tracing in IIS 7.0(使用 IIS 7.0 中的跟踪功能解决请求失败的问题)。
HttpResponse 对象的 Headers 属性,使用它可以访问响应头。
HttpContext 对象的 IsPostNotification 和 CurrentNotification 属性,在提供 HttpApplication 事件的处理程序时可以使用它们。
HttpRequest 对象的 Headers 和 ServerVariables 属性,它们支持写功能。
集成模式与经典模式下请求处理管道的不同
集成模式下ASP.NET的处理管道与经典模式是不同的。集成模式下不论是传统的ASP.NET Web Forms应用程序还是ASP.NET MVC应用程序都可以使用Routing系统(路由系统)。
Routing系统原来是为ASP.NET MVC设计的,后来也被应用于其他ASP.NET技术,包括ASP.NET Web Forms。这就是.NET Framework 3.5中Routing代码不在System.Web.Mvc.dll而在System.Web.Routing.dll中的原因。在.NET Framework 4.0中,Routing代码是在System.Web.dll中的。
IIS 7.0 集成PHP环境
想必不少从事网站方面工作的朋友都想在在WIN7上安装PHP和MYSQL吧,但是在百度和google上搜索都没有PHP FOR IIS7 ,想要一键自动在WIN7上安装PHP和MYSQL看似有点痴人说梦了。最近找到了一个国内的网站上有phpStudy,下载下来测试之后发现确实可以一键自动在WIN7上安装PHP和MYSQL。
自己配置PHP环境比较麻烦,而且容易出错,对于怕麻烦的朋友来说选择phpStudy一键自动在WIN7上安装PHP和MYSQL是一个不错的选择。
参考资料
最新修订时间:2023-10-07 16:31
目录
概述
功能用途
参考资料